﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using vudu.Datos.SqlServer;
using System.Data;
using System.Data.SqlClient;
using System.IO;
using vudu.ClasesDominio;

using vudu.Logica.Clases;//Mientras tanto

namespace vudu.Datos.Fachada
{
    public class EnlaceDatos
    {
        #region VU_1 Gestionar Salones

        public int InsertarSalon(String salon)
        {
            return 0;
        }

        public bool ModificarSalon(String salon)
        {
            return false;
        }

        public List<String> ConsultarSalonNombre(string nombre, String universidad)
        {
            return null;
        }

        public List<String> ConsultarSalonInabilitados(String universidad)
        {
            return null;
        }

        public List<String> ConsultarSalonEdificio(string edificio, String universidad)
        {
            return null;
        }

        public List<String> ConsultarSalonTipo(string tipo, String universidad)
        {
            return null;
        }

        public List<String> ConsultarTodosLosSalones()
        {
            return null;
        }

        public String ConsultarSalon(String codigo)
        {
            return null;
        }

        #endregion VU_1 Gestionar Salones

        #region VU_2 Gestionar Escuelas

        public int AgregarEscuela(Escuela escuela, string _nombreUniversidad)
        {
            return new SqlServerEscuela().InsertarEscuela(escuela, _nombreUniversidad);
        }

        public String ObtenerUniversidadProfesor(int idProfesor)
        {
            return null;
        }

        public String ObtenerUniversidadEstudiante(int idEstudiante)
        {
            return null;
        }

        public List<Escuela> ConsultarEscuela(String universidad)
        {
            return new SqlServerEscuela().SeleccionListaEscuela(universidad);
        }

        public List<String> SeleccionListaEscuela(string nombreUniversidad)
        {
            return null;
        }

        public bool ModificarEscuela(String escuela)
        {
            return false;
        }

        public bool EliminarEscuela(String escuela)
        {
            return false;
        }

        #endregion VU_2 Gestionar Escuelas

        #region VU_3 Gestionar Pensum de cada Escuela

        public bool insertarPensum(String miPensum, int IDEscuela)
        {
            return false;
        }

        public bool insertarPrelacionBD(int miMateriaActual, int idMateriaActual, int idMateriaPrela, int idPensum)
        {
            return false;
        }

        public int consultarIdPensum(String miPensum)
        {
            return 0;
        }

        public int consultarUltimoIdPensum()
        {
            return 0;
        }

        public List<String> consultarMaterias()
        {
            return null;
        }

        public int consultarIdMateria(String miMateria)
        {
            return 0;
        }

        public List<String> periodosActivos(int miPensum)
        {
            return null;
        }

        public List<String> materiasNecesarias(int idPensum, string nombreMateria)
        {
            return null;
        }

        public List<String> ConsultarPensumInactivos(String pensumEscuela)
        {
            return null;
        }

        public int ConsultarPensumActivo(int pensumEscuela)
        {
            return 0;
        }

        public int ConsultarEscuelaEstudiante(int _idUsuario)
        {
            return 0;
        }

        public int ConsultarEscuelaProfesor(int _idUsuario)
        {
            return 0;
        }

        public bool DesactivarPensum(String miPensum)
        {
            return false;
        }

        public bool ActivarPensum(String miPensum)
        {
            return false;
        }

        public String DevolverPensum(int idPensum)
        {
            return null;
        }

        public List<String> devolverPrelaciones(int semestre, int idPensum)
        {
            return null;
        }

        public bool modificarMateriaPensum(String miMateria, int idPensum)
        {
            return false;
        }

        public void eliminarMateriaPrelacion(int idPensum, int idMateria, int idMateriaPrela)
        {
        }

        public List<String> materiasSinPensumSeleccionado(int idPensum)
        {
            return null;
        }
        public void quitarPrelacion(int idPensum, int idMateria)
        {
        }

        public void InsertarSinPrelacion(String miPrelacion, int idPensum)
        {
        }

        public int numeroPrelaciones(int idMateria, int idPensum)
        {
            return 0;
        }

        public List<String> buscarMateriasUsanPrelaciones(int idMateria, int idPensum)
        {
            return null;
        }

        public bool eliminarMateriaPensum(int idMateria, int idPensum)
        {
            return false;
        }

        public String traerDatosMateriaPensum(int idMateria, int idPensum)
        {
            return null;
        }

        public List<String> pensumsInactivos(int idEscuela)
        {
            return null;
        }

        #endregion VU_3 Gestionar Pensum de cada Escuela

        #region VU_4 Gestionar Materias


        public List<String> ConsultarTodasLasMaterias()
        {
            return null;
        }

        public int ConsultarMateria(String codigo, int tipoConsulta)
        {
            return 0;//new SqlServerMateria().ConsultarMateria(codigo,tipoConsulta);
        }

        public int AgregarMateria(Materia materia)
        {
            return new SqlServerMateria().AgregarMateria(materia);
        }

        public int EliminarMateria(String materia)
        {
            return 0;
        }

        public bool ModificarMateria(List<String[]> campos, String materia)
        {
            return false;
        }

        #endregion VU_4 Gestionar Materias

        #region VU_5 Gestionar Practicas por Materia

        public Escuela ArmarEscuela(string correoEscuela)
        {
            return new SqlServerPractica().ArmarEscuela(correoEscuela);
        }

        public bool AgregarPractica(Practica practica, int idSeccionMateria)
        {
            return new SqlServerPractica().AgregarPractica(practica, idSeccionMateria);
        }

        public bool AgregarHorarioClase(HorarioDeClase horarioDeClase, int idPractica)
        {
            return new SqlServerPractica().AgregarHorarioClase(horarioDeClase, idPractica);
        }

        public List<Materia> ObtenerMateriasActivasConSeccTeoria(string nombreEscuela)
        {
            return new SqlServerPractica().MateriasDisponibles(nombreEscuela);
        }

        public List<Profesor> ListaProfesores(int idEscuela)
        {
            return new SqlServerPractica().ConsultarProfesor(idEscuela);
        }

        public List<SeccionMateria> ListaSeccionesMateria(int idEscuela, int idMateria)
        {
            return new SqlServerPractica().ConsultarSeccionMateria(idEscuela, idMateria);
        }

        public int UltimoIdPractica()
        {
            return new SqlServerPractica().UltimoIdPractica();
        }


        /* HASTA AQUI ESTA IMPLEMENTADO */


        public String ConsultarDatosPractica(int idPractica)
        {
            return null;
        }

        public List<String> ConsultarHorasPracticas(int idpractica)
        {
            return null;
        }

        public List<String> ConsultarHorario(String dia)
        {
            return null;
        }

        public List<String> ConsultarSeccionMateria(int idEscuela)
        {
            return null;
        }

        public String ConsultarMateriaPractica(int idSeccionMateria)
        {
            return null;
        }

        public List<String> ConsultarNombrePractica(int idSeccionMateria)
        {
            return null;
        }

        public bool VerificarNombrePractica(String nombrePractica, int numeroSeccionMateria)
        {
            return false;
        }

        public bool VerificarSeccionPractica(int seccionPractica, int numeroSeccionMateria)
        {
            return false;

        }

        public bool EliminarPractica(int idPractica)
        {
            return false;
        }

        public bool ModificarProfesor(int idProfesor, int idPractica)
        {
            return false;
        }

        public bool ModificarSalon(int idPractica, string dia, int salon)
        {
            return false;
        }

        public bool ModificarHorarioPractica(DateTime horaInicio, DateTime horaFin, string dia, int idPractica)
        {
            return false;
        }

        #endregion VU_5 Gestionar Practicas por Materia

        #region VU_6 Gestionar Profesores

        public List<String> ConsultarTodosLosProfesores()
        {
            return null;
        }

        public List<String> ConsultarTodosLosProfesoresDeEscuela(string miEscuela)
        {
            return null;
        }

        public List<String> ConsultarListaProfesores()
        {
            return null;
        }

        public String ConsultarProfesor(String codigo, int tipoConsulta)
        {

            return null;
        }

        public String ConsultarPorMateriaProfesor(String codigo, String miEscuela)
        {
            return null;
        }

        public int EnlaceAgregarProfesorEscuela(Profesor profesor, int idEscuela)
        {
            return new SqlServerProfesor().InsertarProfesor(profesor,idEscuela);
        }

        public bool agregarProfesor(String values)
        {
            return false;
        }

        public bool eliminarProfesor(String cedula)
        {
            return false;
        }

        public bool ModificarProfesor(String miProfesor, String miFecha)
        {
            return false;
        }

        public bool inactivarProfesor(String miProfesor)
        {
            return false;
        }

        public List<String> ConsultarProfesoresActivos(String miEscuela)
        {
            return null;
        }

        public List<String> ConsultarProfesorUniversidad(String id_Universidad)
        {
            return null;
        }

        public List<String> ConsultarMisEscuelas(String miProfesor)
        {
            return null;
        }

        #endregion VU_6 Gestionar Profesores

        #region VU_7 Gestionar Esquema de Evaluacion por Profesor

        public int InsertarEvaluacion(Evaluacion miEvaluacion)
        {
            return new SqlServerEvaluacion().InsertarEvaluacion(miEvaluacion);
        }

        public String ConsultarEvaluacion(int idEvaluacion)
        {
            return null;
        }

        public bool EliminarEvaluacion(String evaluacion)
        {
            return false;
        }

        public bool ModificarEvaluacion(String evaluacion)
        {
            return false;
        }

        public List<String> ConsultarEsquemasDeEvaluacionProfesor(String profesor)
        {
            return null;
        }

        public List<String> ConsultarEsquemaEvaluacionSeccion(String seccionMateria)
        {
            return null;
        }

        public List<String> ConsultarEsquemasDeEvaluacionSinNotasProfesor(String profesor)
        {
            return null;
        }

        public bool EliminarEsquemaEvaluacion(String seccionMateria)
        {
            return false;
        }

        public List<String> ConsultarEsquemasEvaluacionEstudiante(String estudiante)
        {
            return null;
        }

        public List<String[]> EsquemaEvaluacionSeccion(int idSeccion)
        {
            return null;
        }

        public List<SeccionMateria> ConsultarSeccionesMateriasProfesor(Profesor miProfesor)
        {
            return new SqlServerSeccionMateria().ConsultarSeccionProfesor(miProfesor.Cedula);
        }

        #endregion VU_7 Gestionar Gestionar Esquema de Evaluacion por Profesor

        #region VU_8 Gestionar Notas de Estudiante

        public List<String[]> MateriasProfesor(int idProfesor, int idPeriodo)
        {
            return null;
        }

        #endregion VU_8 Gestionar Notas de Estudiante

        #region VU_9 Gestionar la Carga de Archivos PDF

        public DataTable consultarArchivoProfesor(int idProfesor, int NumeroSeccion)
        {
            return null;
        }

        public DataTable consultarArchivoEstudiante(int idSeccion)
        {
            return null;
        }

        public List<String> ConsultarSeccionesProfesorArchivoPdf(String profesor)
        {
            return null;
        }

        public List<String> ConsultarCategoriaProfesorArchivoPdf(String profesor, int idSeccion)
        {
            return null;
        }

        public List<String> ConsultarNombreArchivoPdf(String profesor, int idSeccion, String nombreCategoria)
        {
            return null;
        }

        public List<String> ConsultarSeccionesEstudianteArchivoPdf(String estudiante)
        {
            return null;
        }

        public List<String> ConsultarDatosSeccionProfesorArchivoPdf(String profesor, String seccion)
        {
            return null;
        }

        public void InsertarArchivoPdf(String archivoPdf, float tamañoArchivo, String profesor, String seccion)
        {
        }

        public void EliminarArchivoPdf(int idArchivo, float tamañoActual, String profesor)
        {
        }

        #endregion VU_9 Gestionar la Carga de Archivos PDF

        #region VU_10 Consultar Horarios de Materias e Imprimir

        public List<String> ConsultarSeccionesEstudiante(String estudiante)
        {
            return null;
        }

        public List<String> ConsultarSeccionesPracticaEstudiante(String estudiante)
        {
            return null;
        }

        public List<String> ConsultarHorarioSeccionEstudiante(String seccion)
        {
            return null;
        }

        public List<String> ConsultarHorarioPracticaEstudiante(String practica)
        {
            return null;
        }

        public String ConsultarNombreUniversidadMateria(int id)
        {
            return null;
        }

        public String ConsultarNombreUniversidadPractica(int id)
        {
            return null;
        }

        public String ConsultarNombreEscuelaMateria(int id)
        {
            return null;
        }

        public String ConsultarNombreEscuelaPractica(int id)
        {
            return null;
        }

        #endregion VU_10 Consultar Horarios de Materias e Imprimir

        #region VU_11 Consultar Estudiantes por Seccion e Imprimir

        public List<String> ConsultarTodosLosEstudiante()
        {
            return null;
        }

        public String ConsultarUnEstudiante(int ci)
        {
            return null;
        }

        public int ConsultarEstudianteExistente(int ci)
        {
            return 0;
        }

        public String ConsultarEstudianteCedula(int ci)
        {
            return null;
        }

        public String ConsultarEstudianteExpe(string expe)
        {
            return null;
        }

        public int InsertarEstudiante(String est)
        {
            return 0;
        }

        public int InsertarEstudianteEscuela(int idestudiante, int idescuela, DateTime fecha)
        {
            return 0;
        }

        #endregion VU_11 Consultar Estudiantes por Seccion e Imprimir

        #region VU_12 Obtener reportes de Material

        public List<String> ConsultarMateriaSeccionProfesor(int idProfesor)
        {
            return null;
        }

        public List<String> ConsultarPracticaProfesor(int idProfesor)
        {
            return null;
        }

        public List<String> ConsultarEstudiantes(int idSeccion)
        {
            return null;
        }

        /*public List<String> ConsultarEvaluacion(int idSeccion)
        {
            return null;
        }*/

        public List<String> ConsultarNotas(int idEvaluacion)
        {
            return null;
        }

        #endregion VU_12 Obtener reportes de Material

        #region VU_13 Gestionar Horarios

        public List<Materia> ConsultarMateriasPrematriculas(Estudiante estudiante, int semestreActual)
        {
            return new SqlServerHorarioPreMatricula().ConsultarMateriasPrematricula(estudiante, semestreActual);
        }

        public List<SeccionMateria> ConsultarSeccionesDeUnaMateria(Materia materia)
        {
            return new SqlServerHorarioPreMatricula().ConsultarSeccionesDeUnaMateria(materia);
        }

        public List<HorarioDeClase> ConsultarHorarioDeClaseSeccion(SeccionMateria seccionMateria)
        {
            return new SqlServerHorarioPreMatricula().ConsultaHorarioClaseSeccion(seccionMateria);
        }

        #endregion VU_13 Gestionar Horarios

        #region VU_14 Registrarse en Sistema

        public List<Universidad> ConsultarUniversidades()
        {
            return new SqlServerUniversidad().ConsultarUniversidades();
        }

        public List<Escuela> ConsultarEscuelasCombo()
        {
            return new SqlServerRol().ConsultarEscuelasBD();
        }

        public bool validarCorreoRol(string correo)
        {
            return new SqlServerRol().ValidarCorreo(correo);
        }

        public bool VerificarProfesorRol(int ci)
        {
            return new SqlServerRol().ConsultarProfesorRol(ci);
        }

        public bool RegistrarRolProfesor(Rol miRol, int usuario)
        {
            return new SqlServerRol().InsertarRolProfesor(miRol, usuario);
        }

        public bool RegistrarRolUniversidad(Rol miRol, int usuario)
        {
            return new SqlServerRol().InsertarRolUniversidad(miRol, usuario);
        }

        public bool RegistrarRolEstudiante(Rol miRol, int usuario)
        {
            return new SqlServerRol().InsertarRolEstudiante(miRol, usuario);
        }

        public bool RegistrarRolEscuela(Rol miRol, int usuario)
        {
            return new SqlServerRol().InsertarRolEscuela(miRol, usuario);
        }

        public bool VerificarCedulaProfesor(int ci)
        {
            return new SqlServerRol().ConsultarUnProfesor(ci);
        }

        public bool VerificarRolEstudiante(int ci)
        {
            return new SqlServerRol().ConsultarEstudianteRol(ci);
        }

        public bool VerificarCedulaEstudianteRol(int ci)
        {
            return new SqlServerRol().ConsultarUnEstudiante(ci);
        }

               




        #endregion VU_14 Registrarse en Sistema

        #region VU_15 Gestionar de Acceso

        #endregion VU_15 Gestionar de Acceso
    }
}